Embedded Real-Time Software using TinyTimber - Reactive Objects in C
نویسنده
چکیده
Embedded systems are often operating under hard real-time constraints. Such systems are naturally described as time-bound reactions to external events, a point of view made manifest in the high-level programming and systems modeling language Timber. In this licensiate thesis we demonstrate how the Timber semantics for parallel reactive objects translates to embedded real-time programming in C. This is accomplished through the use of a minimalistic Timber Run-Time system, TinyTimber. The TinyTimber kernel ensures state integrity, and performs scheduling of events based on given time-bounds in compliance with the Timber semantics. In this way, we avoid the volatile task of explicitly coding parallelism in terms of traditional processes/threads/semaphores/monitors, and side-step the delicate task to encode time-bounds into process/thread priorities. Moreover, a simulation environment is developed that enables the behaviour of a heterogeous distributed system, consisting of the Timber based embedded software to be observed under a model of the environment. Furthermore, pedagogic issues of reactive objects have been studied in the context of higher education. First results indicate that the use of TinyTimber give students an increased ability to understand and solve embedded programming assignments. Finally, the TinyTimber kernel implementation is discussed. Performance metrics are given for a number of representative platforms, showing the applicability of TinyTimber to small embedded systems. A comparison to a traditional system tick driven, thread based, real-time kernel shows that TinyTimber provides tighter timing and a simpler (yet comprehensive) API. In conclution we find that the use of Reactive Objects in C, realized through TinyTimber is a viable alternative for Embedded Real-Time Programming.
منابع مشابه
Field Programmable Gate Array–based Implementation of an Improved Algorithm for Objects Distance Measurement (TECHNICAL NOTE)
In this work, the design of a low-cost, field programmable gate array (FPGA)-based digital hardware platform that implements image processing algorithms for real-time distance measurement is presented. Using embedded development kit (EDK) tools from Xilinx, the system is developed on a spartan3 / xc3s400, one of the common and low cost field programmable gate arrays from the Xilinx Spartan fami...
متن کاملSpecification and Verification of Real-Time Embedded Systems Using Time-Constrained Reactive Automata
The vital role that real-time embedded systems are playing and will continue to play in our world, coupled with their increasingly complex and critical nature, demand a rigorous and systematic treatment that recognizes their unique requirements. The Time-constrained Reactive Automaton (TRA) is a formal model of computation that admits these requirements. Among its salient features is a fundamen...
متن کاملJava and Real Time Storage Applications
Storage systems have storage devices which run real time embedded software. Most storage devices use C and occasionally C++ to manage and control the storage device. Software for the storage device must meet the time and resource constraints of the storage device. The prevailing wisdom in the embedded world is that objects and in particular Java only work for simple problems and can not handle ...
متن کاملEnabling Component-Based Design for Embedded Real-Time Software
The increasing complexity of embedded software calls for a new, more efficient design approach. A natural choice is to use well-established component-based design; however, its adoption to design of embedded software has been slow and riddled with difficulties. It can be argued that these problems are due to the following peculiarities of embedded systems. Firstly, the tight integration between...
متن کاملTowards Reusable Real-Time Objects
Large and complex real-time systems can benefit significantly from a component-based development approach where new systems are constructed by composing reusable, documented and previously tested concurrent objects. However, reusing objects which execute under real-time constraints is problematic because application specific time and synchronization constraints are often embedded in the interna...
متن کامل